/*
 *  Erreur.h
 *  Ray Tracing
 *
 *  Definition des methodes de la classe Erreur
 *  Classe de Gestion des erreurs
 *
 *  Created by Jean-Marc Comby + Romain Dequesne on Sun Mar 28 2004.
 *  Copyright (c) 2004. All rights reserved.
 *
 */
#ifndef _ERREUR_H
#define _ERREUR_H
#include <iostream>
#include <string>
#include <fstream> //pour les ecritures dans les fichiers
#include <time.h>
//#include "Coord.hpp"

/**
 * Classe utilisée pour l'envoi d'exceptions dans le projet de
 * raytracing. Possède une méthode permettant d'écrire le résultat
 * dans un logfile.
 *
 * Une Erreur contient un message, un champ permettant de savoir d'où
 * vient l'exception, un code et un champ permettant de savoir si
 * l'exécution à été génée ou stoppée.
 *
 * @author Jean-Marc Comby + Romain Dequesne
 *
 * @date 28 Mars 2004
 */
class Erreur
{
 public:
  /**
   * Booléen indiquant si l'erreur rencontrée a provoqué l'arrêt du
   * programme ou non.
   */
  bool arret;
  /**
   * Code de l'erreur, numéro attribué.
   */
  int code;
  /**
   * Message à écrire dans le log ou dans le terminal.
   */
  std::string message;
  /**
   * Nom de la fonction (ou de la classe) ayant lancé l'xception.
   */
  std::string classe;
	
  //gere les messages d erreur - les ecrit dans(nom_de_fichier.txt)
  void ecrire(const std::string& s);

  //constructeur et desctructeurs
  Erreur();
  Erreur(const bool&, const int&, const std::string&, const std::string&);
  virtual ~Erreur();
};
#endif
